|
Co-array FortranはFortran 95/2003を並列化を目的として拡張した言語である。以前はF--としても知られ、Robert NumrichとJohn Reidによって開発された。 Co-array Fortranで記述されたプログラムではすべてのスレッドが非同期的に実行されるように扱われる。それぞれのスレッドは''イメージ''と呼ばれる自身のデータオブジェクトを持つ。また、Fortran 95での配列の構文が角括弧と添字を用いてイメージを指定できるように拡張されている。 ISOは2005年5月に次のFortranの標準規格(Fortran 2008)に対してCo-array Fortranを採用することを決定した。 最初にLinuxアーキテクチャにおいてFortran 2008のCo-array Fortranに対応したオープンソースコンパイラはG95である。他にもCrayなどいくつかの商用コンパイラは以前からCo-array Fortranをサポートしている。 ==例== program Hello_World implicit none integer :: i ! Local variable character(len=20) :: name ! scalar coarray ! 注意: "name" はリモートのイメージ上の変数への ! アクセスであるのに対し "name" はローカル変数である ! イメージ1上のユーザーから名前の入力を受ける if (this_image() == 1) then write( *,'(a)',advance='no') 'Enter your name: ' read( *,'(a)') name ! 他のイメージに名前の内容を分配する。 do i = 2, num_images() name = name end do end if sync all ! 確実に同期をとるためにバリアを設ける ! すべてノードで名前を表示する write( *,'(3a,i0)') 'Hello ',trim(name),' from image ', this_image() end program Hello_world 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Co-array Fortran」の詳細全文を読む スポンサード リンク
|